1. Statement of the Technical Field
The present invention relates to the field of distributed computing, including Web services and Grid services, and more particularly to the anticipatory creation of distributed service instances through the operation of a grid mechanism.
2. Description of the Related Art
Web services represent the leading edge of distributed computing and are viewed as the foundation for developing a truly universal model for supporting the rapid development of component-based applications over the World Wide Web. Web services are known in the art to include a stack of emerging standards that describe a service-oriented, component-based application architecture. Specifically, Web services are loosely coupled, reusable software components that semantically encapsulate discrete functionality and are distributed and programmatically accessible over standard Internet protocols.
Conceptually, Web services represent a model in which discrete tasks within processes are distributed widely throughout a value net. Notably, many industry experts consider the service-oriented Web services initiative to be the next evolutionary phase of the Internet. Typically, Web services can be defined by an interface such as the Web services definition language (WSDL), and can be implemented according to the interface, though the implementation details matter little so long as the implementation conforms to the Web services interface. Once a Web service has been implemented according to a corresponding interface, the implementation can be registered with a Web services registry, such as Universal Description, Discover and Integration (UDDI), as is well known in the art. Upon registration, the Web service can be accessed by a service requestor through the use of any supporting messaging protocol, including for example, the simple object access protocol (SOAP).
In a service-oriented application environment supporting Web services, locating reliable services and integrating those reliable services dynamically in realtime to meet the objectives of an application has proven problematic. While registries, directories and discovery protocols provide a base structure for implementing service detection and service-to-service interconnection logic, registries, directories, and discovery protocols alone are not suitable for distributed interoperability. Rather, a more structured, formalized mechanism can be necessary to facilitate the distribution of Web services in the formation of a unified application.
Notably, the physiology of a grid mechanism through the Open Grid Services Architecture (OGSA) can provide protocols both in discovery and also in binding of Web services, hereinafter referred to as “grid services”, across distributed systems in a manner which would otherwise not be possible through the exclusive use of registries, directories and discovery protocols. As described both in Ian Foster, Carl Kesselman, and Steven Tuecke, The Anatomy of the Grid, Intl J. Supercomputer Applications (2001), and also in Ian Foster, Carl Kesselman, Jeffrey M. Nick and Steven Tuecke, The Physiology of the Grid, Globus.org (Jun. 22, 2002), a grid mechanism can provide distributed computing infrastructure through which grid services instances can be created, named and discovered by requesting clients.
Grid services extend mere Web services by providing enhanced resource sharing and scheduling support, support for long-lived state commonly required by sophisticated distributed applications, as well as support for inter-enterprise collaborations. Moreover, while Web services alone address discovery and invocation of persistent services, grid services support transient service instances which can be created and destroyed dynamically. Notable benefits of using grid services can include a reduced cost of ownership of information technology due to the more efficient utilization of computing resources, and an improvement in the ease of integrating various computing components. Thus, the grid mechanism, and in particular, a grid mechanism which conforms to the OGSA, can implement a service-oriented architecture through which a basis for distributed system integration can be provided-even across organizational domains.
In operation, grid services can be instantiated as need be to accommodate incoming requests to access specified grid services. Ordinarily, once access to a grid service has been requested, the grid mechanism can locate an asserted compatible implementation based upon which an instance of the grid service can be created to satisfy the access request. Alternatively, the access request can be satisfied by an already created instance of the asserted compatible implementation. As the capacity of the created instance becomes increasingly taxed so that the created instance no longer can adequately satisfy all access requests from all client requestors, the grid mechanism can create new instances of the grid service to satisfy the overflow of requests. Notably, as grid services instances are deemed unnecessary in view of a measured load, already created instances of the grid service can be unloaded as required.
Nevertheless, new instances of a requested, but overloaded grid service will not be created until the load experienced by the already created instances of the requested grid service reach inappropriate levels. Furthermore, as individual grid services can form and usually do form merely a portion of an application, related grid services can become overloaded in step with the overloading experienced by the individual grid services. Yet, new instances of the related grid services are not created until a separate and independent analysis concludes that new instances of the related grid services will be required. Accordingly, valuable computing resources can be consumed needlessly in determining when to create new instances of grid services to accommodate an increase in load. Furthermore, in many cases more grid services instances than necessary can be created in a knee-jerk response to increased load.